﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crosland.Automotriz.Core;
using Crosland.Automotriz.Data.Dao.Linq;
using Crosland.Automotriz.Entidad;
using Crosland.Automotriz.Logic.ControlExeption;


namespace Crosland.Automotriz.Logic.Linq
{
    public class clsTD_MaterialLogic
    {
        public bool Insertar(Crosland.Automotriz.Core.TD_MATERIAL obj)
        {
            try
            {
                return new clsTD_MaterialDAO().Insertar(obj);
            }
            catch (Exception ex)
            {
                
                throw ex;
            }

          


        }
        public bool Modificar(Crosland.Automotriz.Core.TD_MATERIAL obj)
        {
            return new clsTD_MaterialDAO().Modificar(obj);
        }
        public List<Crosland.Automotriz.Core.TD_MATERIAL> listar()
        {
            try
            {
             return new clsTD_MaterialDAO().listar2();
            }
            catch (Exception ex)
            {
                throw new RunException("Se ha producido error al listar la tabla Material",ex);
            }
           
        }
        public List<Crosland.Automotriz.Core.T_MATERIAL_TIPO> ListaMaterialxId(int id_material)
        {
            return new clsTD_MaterialDAO().ListaMaterialxId(id_material);
        
        }
        public List<Crosland.Automotriz.Core.TD_MATERIAL> listar(int intIdMaterial)
        {
            return new clsTD_MaterialDAO().listar2(intIdMaterial);
        }


        public List<Crosland.Automotriz.Core.TD_MATERIAL> listarKawasaki(int intIdMaterial)
        {
            return new clsTD_MaterialDAO().listarKasaki(intIdMaterial);
        }


        public List<Crosland.Automotriz.Core.TD_MATERIAL> listarPorCodigo(String strCodigoMaterial)
        {
            return new clsTD_MaterialDAO().listarPorCodigo(strCodigoMaterial);
        }

        public int RetorIDMaterial(string COD_MATERIAL)
        {
            return new clsTD_MaterialDAO().RetorIDMaterial(COD_MATERIAL);
        }
    
        public bool Insert_T_MATERIAL_POR_ASIGNAR(string cod_material, string des_material)
        {
            return new clsTD_MaterialDAO().Insert_T_MATERIAL_POR_ASIGNAR(cod_material, des_material);
        }
        public IEnumerable<Object> ListarMaterial()
        {
            return new clsTD_MaterialDAO().ListarMaterial();
        }
        public Boolean VerificarCodigo(String strCodMaterial)
        {
            return new clsTD_MaterialDAO().VerificarCodigo(strCodMaterial);
        }
        public IEnumerable<Object> BuscarMaterial(String strCodMaterial, String strNroRuedas, int? intIdMarca, int? intIdModelo, int? intIdSector, int? intidGrupoArticulo)
        {
            try
            {
               return new clsTD_MaterialDAO().BuscarMaterial(strCodMaterial, strNroRuedas, intIdMarca, intIdModelo, intIdSector, intidGrupoArticulo);
            }
            catch (Exception ex)
            {
                throw new RunException("Error al listar material por los filtros enviados",ex) ;
            }         
        
        }
        public IEnumerable<Object> listaRuedaFiltro()
        {
            try
            {
                return new clsTD_MaterialDAO().listaRuedaFiltro();
            }
            catch (Exception ex)
            {

                throw new RunException("Error al listar el  Tipo Nro.Rueda ", ex);
            }
           
        
        
        }
        public IEnumerable<Object> listaMarcaFiltro()
        {
            try
            {
                return new clsTD_MaterialDAO().listaMarcaFiltro();
            }
            catch (Exception ex)
            {

                throw new RunException("Error al listar la tabla MARCA ",ex) ;
            }
            

        }
        public IEnumerable<Object> listaModeloFiltro()
        {
            try
            {
                return new clsTD_MaterialDAO().listaModeloFiltro();
            }
            catch (Exception ex)
            {

                throw new RunException("Error al listar la tabla Modelo ", ex);
            }
          
        
        }
        public IEnumerable<Object> listaMaterialxAsignar()
        {
            try
            {
                return new clsTD_MaterialDAO().listaMaterialxAsignar();
            }
            catch (Exception ex)
            {
                
                throw new RunException("Error al Listar Material por Asignar",ex);
            }
          

        }
        public IEnumerable<Object> ListarMaterial(String strCodMaterial, String strDesMaterial, int? intIdSector, int? intcantLimite)
        {
            try
            {
                return new clsTD_MaterialDAO().Listar(strCodMaterial, strDesMaterial, intIdSector, intcantLimite);
            }
            catch (Exception ex)
            {                
                throw new RunException("Error al listar Material",ex);
            } 
        }
        public IEnumerable<Object> ListarMaterial(String strCodMaterial)
        {
            try
            {
             return new clsTD_MaterialDAO().ListarMaterial(strCodMaterial);
            }
            catch (Exception ex)
            {
                throw new RunException("Se ha producido error al listar la tabla Material",ex);
            }         

        }

        public IEnumerable<Object> ListaMaterialPorAsignar() {

            try
            {
                return new clsTD_MaterialDAO().ListaMaterialPorAsignar();
            }
            catch (Exception ex)
            {
                
                throw new RunException("Se ha producido error al listar material por asignar",ex);
            }
        }




        public List<TD_MATERIAL_EN> ListaMaterialStock_mas_Transito(String strFiltro, int intTotalRegistros)
        {
            try
            {
                return new clsTD_MaterialDAO().ListaMaterialStock_mas_Transito(strFiltro,intTotalRegistros);
            }
            catch (Exception ex)            {

                throw new RunException("Se ha producido error al listar por el filtro enviado", ex);
            }

        }

    }
}
